program main
	use GaussJordan_module
	implicit none
	real, allocatable, dimension(:,:)	:: matrix
	real, allocatable, dimension(:)		:: solution
	integer	:: rows, cols, i, j
	
	read*, rows
	cols = rows + 1
	allocate(matrix(rows, cols))
	allocate(solution(rows))
	do i = 1, rows
		read*, (matrix(i,j), j=1, cols)
	end do

	call gj_gaussJordan(matrix, solution)
	print*, solution
	call gj_checkError(matrix, solution)
end program
